﻿
<?php
			include("../public_files/conn.php");	//连接数据库
			date_default_timezone_set("Asia/ShangHai");	

?>
<!--音乐台采集-->
<?php
 			$url=array("http://www.yinyuetai.com/vchart/v","http://www.yinyuetai.com/vchart/v?area=HT&date=");

			$time=date("Y-m-d H:i:s");//设置时间为上海时间
			set_time_limit(0);	
			$arrr=array("音乐台内地榜","音乐台港台榜");

	for($u=0;$u<count($url);$u++){
//插入榜单名	
				$sql="insert into official_list_name (list_name,user_id,list_sort_id,create_time) values('".$arrr[$u]."','0','1','$time')";
				mysql_query($sql)or die(mysql_error());	
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$list_id=$rows[0];		//榜单名id
//添加图片mode
			$sql1="insert into official_list_mode (mode_name,name_id) values ('image','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//图片modeID
			
//插入mode
			$mode=array("歌名","歌手");
		for($i=1;$i<=count($mode);$i++){
				$k=$i-1;
			  $mode_name=$mode[$k];
			$sql1="insert into official_list_mode (mode_name,name_id) values ('$mode_name','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//记录mode起始ID
		}
		
//添加顶和踩
		$sql1="insert into official_list_mode (mode_name,name_id) values ('ding','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//ding--modeID
			
		$sql1="insert into official_list_mode (mode_name,name_id) values ('cai','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//cai--modeID
			
			
			
			
			
			
		$content=file_get_contents($url[$u]);
		$mode="/<li name=\"vlist_li\">(.*)<div class=\"data_bg shareBox\" name=\"shareBox\">/iUs";
		//$mode="/<ul class=\"dmvBox\" id=\"dmvBox\">(.*)<div id=\"loadNewData\" style=\"display:none\"><\/div>/is";//一次大范围匹配
		preg_match_all($mode,$content,$arr);
		//print_r($arr[0]);
		$str=implode($arr[0]);//把二维数组转化为字符串
		
		fun($str,$u,$mode_id,$list_id);
		
		$mode_id=array();	//清空数组
	}

//////////////////////////////////查找歌名、歌手、图片/////////////////////////////////////////////////////////////////////////
		function fun($aa,$u,$mode_id,$list_id)
						{
			////////////////////////////////////////取得多个歌手/////////////////////////////////////////////////////////////////////////
							$mode_3="/<h4>(.*)<\/h4>/isU";											//大范围匹配			
							$mode_4="/<a href=\"\/fanclub\/.*\" target=\"_blank\">(.*)<\/a>/isU";	//歌手具体匹配
							preg_match_all($mode_3,$aa,$ar_3);
							$arr3=array();
							foreach($ar_3[0] as $id=> $v){
									$str=$ar_3[1][$id];
									preg_match_all($mode_4,$str,$ar_4);
									$count=count($ar_4[0]);			//一首歌的歌手有几个
									$tt=null;
									for($a=0;$a<$count;$a++){		//每首歌的歌手汇总，并用“$分开”
									if($a==0){
									$tt=$ar_4[1][$a];
									}else{
									$tt = $tt."$".$ar_4[1][$a];}
									
								}
									//echo $tt;echo"<br/>";
									$arr3[]=$tt;					//每首歌的歌手赋给一维数组
							}
			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
								 //var_dump( $aa);
								$mode1 ="/(<a href=\"\/video\/.*\" target=\"_blank\"><img src=\"(.*)\" alt=\".*\"\/><\/a>)/isU";
								$mode_1="/<a href=\"\/video\/.*\" target=\"_blank\"><img src=\"(.*)\" alt=\".*\"\/><\/a>/isU";
								$mode_2="/<h3><a href=\"\/video\/.*\" target=\"_blank\">(.*)<\/a><\/h3>/isU";
								//$mode_3="/<h4><a href=\"\/fanclub\/.*\" target=\"_blank\">(.*)<\/a><\/h4>/isU";
								preg_match_all($mode1,$aa,$ar);
								preg_match_all($mode_1,$aa,$ar_1);
								preg_match_all($mode_2,$aa,$ar_2);
								$count=count($ar_1[1]);
								if($u==0){
								$fenlei=1;
								}else if($u=1){
								$fenlei=2;}
								
								foreach($ar_1[0] as $i=>$v){
								echo $ranking = $i+1;							//排名;
								echo $ar_1[1][$i];$img_url = $ar_1[1][$i];		//歌曲图片路径
								echo $ar_2[1][$i];$geming  = $ar_2[1][$i];
								echo $arr3[$i];	  $geshou  = $arr3[$i];
								echo $img_path = get_image1($img_url,"");
//插入图片路径
			$image_id=$mode_id[0];
			$image_path=$img_path;
			$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$image_id','$image_path','$ranking')";
			mysql_query($sql3)or die(mysql_error());
			if($i==0){
			$sql="update official_list_name set img_path='$image_path' where id='$list_id'";
			mysql_query($sql)or die(mysql_error());
			}
			
		$content=$geming;
		$modeID=$mode_id[1];	
		$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$modeID','$content','$ranking')";
		mysql_query($sql3)or die(mysql_error()); 
		
		$content=$geshou;
		$modeID=$mode_id[2];	
		$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$modeID','$content','$ranking')";
		mysql_query($sql3)or die(mysql_error()); 
		
//插入ding
		$modeID=$mode_id[3];
		$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$modeID','0','$ranking')";
		mysql_query($sql3)or die(mysql_error()); 
//插入cai
		$modeID=$mode_id[4];
		$sql3="insert into official_list_content  (list_name_id,mode_id,content ,ranking) values ('$list_id','$modeID','0','$ranking')";
		mysql_query($sql3)or die(mysql_error());
	
								
								
								
								//insert($fenlei,$geming,$geshou,$ranking,date('Y-m-d'),$img_path);echo"<br>"; 
							} 
						}
/////////////////////////////////////////////////写入数据库函数/////////////////////////////////////////////////////////////////////////////////////////				
				function insert($str1,$str2,$str3,$num,$date,$img_path) { 															//////////////////
			
			$sql="insert into caiji_music (fenlei,geming,geshou,ranking,time,img_path) values  ( '$str1','$str2','$str3','$num','$date','$img_path')";/////////////////////
			$r=mysql_query($sql)or die(mysql_error());
			if($r){ 
				echo"写入成功"; }else{
				echo"写入失败"; 
				} 
			}	

//////////////////////////////////////采集图片到本地并返回保存路径函数/////////////////////////////////////////////////////////////////////////////////////////////		
//URL是远程的完整图片地址，不能为空, $filename 是另存为的图片名字 
//默认把图片放在以此脚本相同的目录里 

	function get_image1($url, $filename="")
			{ 
			//$url 为空则返回 false; 
			if($url == "")
			{
				return false;
			} 
			$url = explode('?', $url);
			$url=$url[0];
			$ext = $url;
			$ext = strrchr($ext, ".");//得到图片的扩展名 
			
			
			if($ext != ".gif" && $ext != ".jpg" && $ext != ".bmp"&& $ext != ".png")
			{
				echo "格式不支持！";return false;
			} 
			$now=date("Y-m-d H:i:s");
			$ext=strrchr($url,"/");
			if($filename == "")
			{
				$filename = "music_image"."$ext";
			}
///////////////////判断图片是否存在///////////////////////////////////////////////////////////////
			$nsa = explode('.', $ext);
			$dir = opendir('music_image');							
			while(($file = readdir($dir))!=false){
			  if ($file!="." && $file!="..") { 
				$ns = explode('.', $file);
				if($nsa==$ns)
				{		
						echo "<图片已存在>";
						return $filename;
				}													
				
			  } 
			}														
			closedir($dir);
///////////////////////////////////////////////////////////////////////////////////////////////////		
			//以时间戳另起名 
			//开始捕捉 
			ob_start(); 
			readfile($url); 
			$img = ob_get_contents(); 
			ob_end_clean(); 
			$size = strlen($img); 
			$fp2 = fopen($filename , "a"); 
			fwrite($fp2, $img); 
			fclose($fp2); 
			return $filename; 
			}  
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

?>

<!--虾米网采集-->

<?php
			date_default_timezone_set("Asia/ShangHai");	
			set_time_limit(0);
			 $time=date('Y-m-d H:i:s');
			$content=file_get_contents("http://www.xiami.com/music/hot");
			$mode="/<div class=\"common_sec\">(.*)<\/div>/iUs";	
			preg_match($mode,$content,$arr);
			//var_dump($arr);
			$mode1="/<p><a href=\"(.*)\" title=\".*\">(.*)<\/a><\/p>/";
			preg_match_all($mode1,$arr[1],$ar);		//$ar是每个榜单的url和榜单名
			 foreach($ar[0] as $id=>$v){
			if($id>1 && $id<6){
//插入榜单名
			$list_name = substr($ar[2][$id],0);	
			$sql="insert into official_list_name (list_name,user_id,list_sort_id,create_time) values('$list_name','0','1','$time')";
			mysql_query($sql)or die(mysql_error());	
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$list_id=$rows[0];		//榜单名id			
			
//添加图片mode
			$sql1="insert into official_list_mode (mode_name,name_id) values ('image','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//图片modeID
			
//插入mode
			$mode=array("歌名","歌手");
		for($i=1;$i<= count($mode);$i++){
				$k=$i-1;
			  $mode_name=$mode[$k];
			$sql1="insert into official_list_mode (mode_name,name_id) values ('$mode_name','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//记录mode起始ID
		}
		
//添加顶和踩
		$sql1="insert into official_list_mode (mode_name,name_id) values ('ding','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//ding--modeID
			
		$sql1="insert into official_list_mode (mode_name,name_id) values ('cai','$list_id')";
			mysql_query($sql1)or die(mysql_error());
			$query="SELECT LAST_INSERT_ID()";
			$result=mysql_query($query);
			$rows=mysql_fetch_row($result);
			$mode_id[]=$rows[0];//cai--modeID			
			
			
			
			
			//echo $ar[1][$id]."<br/>";
			//echo $ar[2][$id]."<br/>";
			$url_1="http://www.xiami.com".$ar[1][$id];
			$content1=file_get_contents($url_1);
			$mode_1="/<td class=\"song_name\">(.*)<\/td>/iUs";	
			preg_match_all($mode_1,$content1,$ar_1);//$ar_1歌名和歌手					
 			foreach($ar_1[0] as $id_1=>$v_1){
			
			
			$mode_2="/<a href=\"(.*)\" title=\".*\">(.*)<\/a>/iUs";
			preg_match_all($mode_2,$ar_1[0][$id_1],$ar_2);//$ar_2歌曲图片所在页面路径和歌名		
			
			$ar_2_1=implode($ar_2[1]);
			$url_2="http://www.xiami.com".$ar_2_1;
		
			$content2=file_get_contents($url_2);
			$mode_5="/<img class=\"cdCDcover185\" src=\"(.*)\" \/>/iUs";
			preg_match($mode_5,$content2,$ar_5);
			//echo $ar_5[1];echo"---";			//$ar_5[1]为歌曲图片路径
			$img_path=get_image($ar_5[1]);		//采集歌曲图片并返回采集后的图片路径
			if($img_path){}else{$img_path="music_img/no_img.png";}
			$mode_3="/<a class=\"artist\" .*>(.*)<\/a>/iUs";
			$mode_4="/<a class=\"artist\" target=\"_blank\" href=\"\/search\/find\?artist=.*\" title=\".*\">(.*)<\/a>/is";
			preg_match_all($mode_3,$ar_1[0][$id_1],$ar_3);

				$count=count($ar_3[0]);
				for($i=0;$i<$count;$i++){
					if($i==0){
									$geshou=$ar_3[1][$i];
									}else{
									$geshou = $geshou."&".$ar_3[1][$i]; 
						}
				}
				$geming=implode($ar_2[2]);
				$ranking=$id_1+1;
 				echo $count.($id_1+1)."---".$geming."---".$geshou.$img_path.$time."<br/>";
				
				//$sq="insert into caiji_music (ranking,geming,geshou,fenlei,img_path,time)values('$ranking','$songname','$songer','$id','$img_path','$time')";
				//mysql_query($sq)or die(mysql_error());  

//插入图片路径
			$image_id=$mode_id[0];
		echo	$image_path=$img_path;
			$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$image_id','$image_path','$ranking')";
			mysql_query($sql3)or die(mysql_error());
			if($i==0){
				$sql="update official_list_name set img_path='$image_path' where id='$list_id'";
				mysql_query($sql)or die(mysql_error());
			}
			
			$content=$geming;
	echo	 $content=replace($content);

		$modeID=$mode_id[1];	
		$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$modeID','$content','$ranking')";
		mysql_query($sql3)or die(mysql_error()); 
		
	echo	$content=$geshou;
		$content=replace($content);
		$modeID=$mode_id[2];	
		$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$modeID','$content','$ranking')";
		mysql_query($sql3)or die(mysql_error()); 
		
//插入ding
		$modeID=$mode_id[3];
		$sql3="insert into official_list_content  (list_name_id,mode_id,content,ranking ) values ('$list_id','$modeID','0','$ranking')";
		mysql_query($sql3)or die(mysql_error()); 
//插入cai
		$modeID=$mode_id[4];
		$sql3="insert into official_list_content  (list_name_id,mode_id,content ,ranking) values ('$list_id','$modeID','0','$ranking')";
		mysql_query($sql3)or die(mysql_error());


				flush();
				ob_flush();
				
				}
			 
			 $sort = substr($ar[2][$id],0);
			 echo $sort;
				//$sql="insert into caiji_mus_sort (sort_name) values('$sort')";
				//mysql_query($sql)or die(mysql_error());
				
				
				} echo "<br/>"."------------------------------------------"."<br/>";

			}  

			
			
			
			
			
	//////////////////////////////////////采集图片到本地并返回保存路径函数/////////////////////////////////////////////////////////////////////////////////////////////		
//URL是远程的完整图片地址，不能为空, $filename 是另存为的图片名字 
//默认把图片放在以此脚本相同的目录里 

	 function get_image($url, $filename="")
			{ 
			//$url 为空则返回 false; 
			if($url == "")
			{
				return false;
			} 
			$ext = strrchr($url, ".");//得到图片的扩展名 
			if($ext != ".gif" && $ext != ".jpg" && $ext != ".bmp"&& $ext != ".png")
			{
				echo "格式不支持！";return false;
			} 
			$now=date("Y-m-d H:i:s");
			$ext=strrchr($url,"/");
			if($filename == "")
			{
				$filename = "music_image"."$ext";
			}
///////////////////判断图片是否存在////////////////////////////////////////////
			$nsa = explode('.', $ext);
			$dir = opendir('music_image');							//////////
			while(($file = readdir($dir))!=false){
			  if ($file!="." && $file!="..") { 
				$ns = explode('.', $file);
				if($nsa==$ns)
				{
						return $filename;
				}													///////////
				
			  } 
			}														//////////
			closedir($dir);
///////////////////////////////////////////////////////////////////////////			
			//以时间戳另起名 
			//开始捕捉 
			ob_start(); 
			readfile($url); 
			$img = ob_get_contents(); 
			ob_end_clean(); 
			$size = strlen($img); 
			$fp2 = fopen($filename , "a"); 
			fwrite($fp2, $img); 
			fclose($fp2); 
			return $filename; 
			}  
/////////////////////////////////////////////////////////////////////////////////////////////////		
	

function replace($str){
 $str=str_replace("'","’",$str);
 $str=str_replace(",","",$str);
 $str=str_replace("‘","",$str);
 $str=str_replace("’","",$str);
 return $str;
}	
	?>	
			